package kr.co.bettersoft.sendme.util;

import java.text.SimpleDateFormat;

/**
 * 공통으로 사용되는 설정값을 정의하는 클래스 이다.
 * 
 * @author johnkim
 *
 */
public class SendMeConstant {

	public static String TAG = SendMeConstant.class.getSimpleName();
	
	/**
	 * 앱 정보 관련.
	 * 유/무료 정책은 추후 수정 가능.
	 */
	
	// 디바이스 타입.(안드로이드:AS/아이폰:IP)
	public static final String DEVICE_TYPE = "AS";
	
	// 앱의 유무료 종류.(Y:유료/N:무료)
	public static final String PAY_YN = "N";
	
	// 최대 녹음 가능 시간.(초)
	public static final int RECORDING_TIME = 30000;
	
	// 사용 가능 일자.(일)
	public static final String AVAILABLE_DAY = "7";
	
	// 프로젝트 넘버 for GCM.
	public static final String PROJECT_NUMBER = "983190139288";
	
	/**
	 * Gmail 전송 관련.
	 */
	
	// gmail sender id
	public static final String GMAIL_SENDER_ID = "weareetist@gmail.com";
	
	// gmail sender pw
	public static final String GMAIL_SENDER_PWD = "etist1844";
	
	// gmail receiver id
	public static final String GMAIL_RECEIVER_ID = "weareetist@gmail.com";
	
	/**
	 * 음성 메시지 관련
	 */
	
	// 녹음 중인 임시파일 저장될 경로. (비공개 처리)
	public static final String APPLICATION_AUDIO_TEMP_DIRECTORY = "/Android/data/kr.co.bettersoft.sendme.activity/.AudioRecord/temp";
	
	// 다운받은 음성 메시지 저장될 경로. (비공개 처리)
	public static final String APPLICATION_AUDIO_DOWNLOAD_DIRECTORY = "/Android/data/kr.co.bettersoft.sendme.activity/.AudioRecord/download";

	/**
	 * 기본 URL 관련.
	 */
	
	// 설정 파일 경로.
	public static final String SENDME_PREFERENCE = "kr.co.bettersoft.sendme.activity_preferences";
	
	// 서버 기본 URL.
	public static final String SERVER_URL = "http://mobile.sendme.co.kr";
	
	// 이용약관 URL.
	public static final String TERMS_URL = "http:///mobile.sendme.co.kr/sendMeRest/sendMeViewController/terms/KR";
	
	// 개인정보 보호정책 URL.
	public static final String PRIVATE_POLICY_URL = "http:///mobile.sendme.co.kr/sendMeRest/sendMeViewController/privacy/KR";
	
	// 개인정보 수집 및 이용 URL.	
	public static final String PRIVATE_POLICY_URL2 = "http:///mobile.sendme.co.kr/sendMeRest/sendMeViewController/collectionAndUse/KR";
	
	// 도움말 URL.
	public static final String FAQ_URL = "http:///mobile.sendme.co.kr/sendMeRest/sendMeViewController/help/KR";
		
	// 공지사항 URL.
	public static final String NOTICE_URL = "http:///mobile.sendme.co.kr/sendMeRest/sendMeViewController/notice/KR";
	
	// 매핑 컨트롤러.
	public static final String MAPPING_CONTROLLER = "/sendMeRest";
	
	/**
	 * 인증 관련.
	 */
	
	// 인증 컨트롤러.
	public static final String CERTIFICATION_CONTROLLER = "/sendMeCertificationController";
	
	// 인증번호를 요청 한다.
	public static final String REQUEST_CERTIFICATION = "/requestCertification";
	
	// 승인을 요청 한다.
	public static final String REQUEST_ADMISSION = "/requestAdmission";
	
	/**
	 * 멤버 관련.
	 */
	
	// 멤버 컨트롤러.
	public static final String MEMBER_CONTROLLER = "/sendMeMemberController";
	
	// 휴대전화번호로 멤버 중복을 확인 한다.
	public static final String MEMBER_SELECT_DUPLICATION = "/selectDuplication";
	
	// 멤버를 등록 한다.
	public static final String REGISTER_MEMBER = "/registerMember";
	
	// 멤버 정보를 가져 온다.
	public static final String SELECT_MEMBER = "/selectMember";
	
	// 멤버 닉네임 중복검사를 한다.
	public static final String SELECT_DUPLICATION_NICK_NAME = "/selectDuplicationNickName";
	
	// 멤버 정보를 수정 한다.
	public static final String UPDATE_MEMBER = "/updateMember";
	
	// 멤버를 비활성화 한다.
	public static final String UPDATE_DEACTIVATE_MEMBER = "/updateDeactivateMember";

	// push id 를 업데이트 한다.
	public static final String UPDATE_PUSH_ID = "/updatePushId";
	
	/**
	 * 유저 관련.
	 */
	// 유저 컨트롤러.
	public static final String USER_CONTROLLER = "/sendMeUserController";
		
	// 음성 메시지를 받는 사용자 목록을 가져 온다.
	public static final String SELECT_USER_LIST = "/selectUserList";
	
	// 예약 음성 메시지의 수신자 목록을 업데이트 한다. 아래 1,2 처리를 서버에서 처리
	// 1. 기존의 수신자 목록을 비활성화 한다.
	// 2. 새로 받은 수신자 목록을 등록 한다.
	public static final String UPDATE_RESERVATION_USER_LIST = "/updateReservationUserList";
		
	
	/**
	 * 차단 관련.
	 */
	
	// 블록(차단) 컨트롤러.
	public static final String BLOCK_CONTROLLER = "/sendMeBlockController";
	
	// 차단 등록하기전 중복을 확인 한다.
	public static final String BLOCK_SELECT_DUPLICATION = "/selectDuplicate";
	
	// 차단을 등록 한다.
	public static final String REGISTER_BLOCK = "/registerBlock";
	
	// 차단 목록을 가져 온다.
	public static final String SELECT_BLOCK_LIST = "/selectBlockList";
	
	// 차단을 업데이트 한다.
	public static final String UPDATE_BLOCK = "/updateBlock";
	
	/**
	 * 설치여부 관련.
	 */
	
	// 설치여부 컨트롤러.
	public static final String INSTALL_CONTROLLER = "/sendMeInstallController";
	
	// 설치여부 등록하기전 중복을 확인 한다.
	public static final String INSTALL_SELECT_DUPLICATION = "/selectDuplicate";
	
	// 설치여부를 등록 한다.
	public static final String REGISTER_INSTALL = "/registerInstall";
	
	// 설치여부 목록을 가져 온다.
	public static final String SELECT_INSTALL_LIST = "/selectInstallList";
	
	// 설치여부를 업데이트 한다.
	public static final String UPDATE_INSTALL = "/updateInstall";
	
	
	/**
	 * 음성 메시지 관련
	 */
	
	// 음성 메시지 컨트롤러.
	public static final String VOICE_CONTROLLER = "/sendMeVoiceController";
	
	// 음성 메시지를 등록 한다.
	public static final String REGISTER_VOICE = "/registerVoice";
	
	// 음성 메시지 목록을 가져 온다.
	public static final String SELECT_VOICE_LIST = "/selectVoiceList";
	
	// 음성 메시지를 비활성화 한다.
	public static final String UPDATE_DEACTIVATE = "/updateDeactivate";
		
	// 사용자가 예약 발송한 음성 메시지 목록을 가져 온다.
	public static final String SELECT_USER_RESERVATION_LIST = "/selectUserReservationList"; 
	
	// 예약 발송 음성 메시지를 발송 한다.
	public static final String UPDATE_DELIVERY_YN = "/updateDeliveryYn";

	/**
	 * 로그 관련.
	 */
	
	// 로그 컨트롤러.
	public static final String LOG_CONTROLLER = "/sendMeLogController";
	
	// 로그를 등록 한다.
	public static final String REGISTER_LOG = "/registerLog";
	
	/**
	 * 버전 관련.
	 */
	
	// 버전 컨트롤러.
	public static final String VERSION_CONTROLLER = "/sendMeVersionController";
	
	// 버전 정보를 가져 온다.
	public static final String GET_LAST_RELEASED_VERSION = "/getLastReleasedVersion";
	
	/**
	 * 기타.
	 */
	
	// 진행바 업데이트 간격(ms)
	public static final int mProgressCheckStepMs = 200;
	
	// 예약 - 날짜 선택 포맷 (출력용)
	public static final SimpleDateFormat reservationDateSimpleDateFormat = new SimpleDateFormat("yyyy/MM/dd (E)");		// EEEE : full
	
	// 예약 - 시간 선택 포맷 (출력용)
	public static final SimpleDateFormat reservationTimeSimpleDateFormat = new SimpleDateFormat("a hh:mm");
	
	// 예약 - 날짜 선택 포맷 (전송용)
	public static final SimpleDateFormat reservationDateSimpleDateFormatForSend = new SimpleDateFormat("yyyy-MM-dd");		// EEEE : full	yyyy-MM-dd HH:mm:ss	
	
	// 예약 - 시간 선택 포맷 (전송용)
	public static final SimpleDateFormat reservationTimeSimpleDateFormatForSend = new SimpleDateFormat("HH:mm");
	
	// 예약 - 시간 선택시 분 간격(min)
	public static final int TIME_PICKER_INTERVAL = 30;
	
	// 일반 시간 포맷
	public static final SimpleDateFormat commonDateSimpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
	// 예약용 일반 시간 포맷
	public static final SimpleDateFormat commonReservationDateSimpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");		
	
	// 음성 메시지  포맷 (출력용)
	public static final SimpleDateFormat receiveMessageDateSimpleDateFormat = new SimpleDateFormat("yyyy/MM/dd a hh:mm");		
	
	/**
	 *  파일 관련
	 */
	
	// 음성 메시지 파일 컨트롤러.
	public static final String FILE_CONTROLLER = "/sendMeFileController";
	
	// 음성 메시지 파일을 가져 온다.
	public static final String SELECT_FILE = "/selectFile";
	
	
	
	/**
	 * 메시지 인식여부 관련
	 */
	
	// 메시지 인식여부 컨트롤러
	public static final String RECOGNITION_CONTROLLER = "/sendMeRecognitionController";
	
	// 메시지 인식 여부를 업데이트한다(읽음 처리)
	public static final String UPDATE_READ_YN = "/updateReadYn";
	
	
}
